package productos;

import java.util.ArrayList;
import java.util.List;

import envio.Envio;

public class Stock {

	List<Envio> enviosSuscriptos;
	public Integer cantidadStock;
	public Integer stockMin;
	public Integer stockCrit;

	public Stock(Integer cantidadStock, Integer stockMin, Integer stockCrit) {
		enviosSuscriptos = new ArrayList<Envio>();
		this.cantidadStock = cantidadStock;
		this.stockMin = stockMin;
		this.stockCrit = stockCrit;
		this.notificarCambiosAEnvios();
	}

	public void notificarCambiosAEnvios() {
		List<Envio> envios = (List<Envio>) enviosSuscriptos;
		for (Envio e : envios) {
			if (e.checkEnvioPosible()) {
				e.avisarACliente();
			}
		}

	}

	public int getCantidadStock() {
		return this.cantidadStock;
	}

	public void setCantidadStock(Integer cantidadStock) {
		this.cantidadStock = cantidadStock;
	}

	public boolean porDebajoStockCritico() {
		return (cantidadStock < this.stockCrit);
	}

	public boolean porDebajoStockMinimo() {
		return (cantidadStock < this.stockMin);
	}

	public void agregarEnvioObservador(Envio envio) {
		this.enviosSuscriptos.add(envio);
	}

}
